package br.com.sovi.gwt.server.json.entity;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

import br.com.sovi.gwt.client.entity.Ponto;
import br.com.sovi.gwt.client.entity.cerca.Cerca;

@XmlRootElement(name = "cerca")
@XmlAccessorType(XmlAccessType.FIELD)
public class CercaVO {

	private String dispositivo;
	
	private List<PontoVO> pontos;
	
	public CercaVO() {
	}

	public CercaVO(String dispositivo, List<PontoVO> pontos) {
		super();
		this.dispositivo = dispositivo;
		this.pontos = pontos;
	}

	public CercaVO(Cerca cerca) {
		this.dispositivo = cerca.getSerial();
		List<Ponto> pontoBeans = cerca.getPoints();
		
		pontos = new ArrayList<PontoVO>(pontoBeans.size());
		
		for (Ponto ponto : pontoBeans) {
			pontos.add(new PontoVO(ponto));
		}
	}

	public Cerca toBean() {
		Cerca cerca = new Cerca();
		cerca.setSerial(dispositivo);
		
		// TODO limpa os pontos para criar uma cerca nova
		cerca.getPoints().clear();
		
		for (PontoVO vo : pontos) {
			cerca.getPoints().add(vo.toPonto());
		}
		
		return cerca;
	}

	public String getDispositivo() {
		return dispositivo;
	}

	public void setDispositivo(String dispositivo) {
		this.dispositivo = dispositivo;
	}

	public List<PontoVO> getPontos() {
		return pontos;
	}

	public void setPontos(List<PontoVO> pontos) {
		this.pontos = pontos;
	}
	
}
